package com.one.group.service;

import com.mybatisflex.core.service.IService;
import com.one.group.model.dto.QuestionnaireSurveyAddDto;
import com.one.group.model.dto.QuestionnaireSurveyQueryDto;
import com.one.group.model.dto.QuestionnaireSurveyUpdateDto;
import com.one.group.model.dto.QuestionnaireKeywordSearchDto;
import com.one.group.model.entity.QuestionnaireSurvey;
import com.one.group.model.vo.QuestionnaireSurveyListVo;

import java.util.List;

/**
 * 问卷服务接口
 * @author kld
 */
public interface QuestionnaireSurveyService extends IService<QuestionnaireSurvey> {
    
    /**
     * 新增问卷
     */
    boolean addQuestionnaire(QuestionnaireSurveyAddDto addDto);
    
    /**
     * 分页查询问卷列表
     * @param queryDto 查询条件
     * @return 问卷列表
     */
    List<QuestionnaireSurveyListVo> findQuestionnaireByQueryDto(QuestionnaireSurveyQueryDto queryDto);
    
    /**
     * 逻辑删除问卷
     * @param id 问卷ID
     * @return 是否删除成功
     */
    boolean deleteQuestionnaire(Long id);
    

    
    /**
     * 更新问卷
     * @param updateDto 问卷更新DTO
     * @return 是否更新成功
     */
    boolean updateQuestionnaire(QuestionnaireSurveyUpdateDto updateDto);
    
    /**
     * 根据ID查询问卷详情
     * @param id 问卷ID
     * @return 问卷实体
     */
    QuestionnaireSurvey getById(Long id);
    
    /**
     * 关键字搜索问卷
     * @param keywordSearchDto 关键字搜索条件
     * @return 问卷列表
     */
    List<QuestionnaireSurveyListVo> findQuestionnaireByKeyword(QuestionnaireKeywordSearchDto keywordSearchDto);
}